package com.youlai.boot.system.service;

import com.youlai.boot.system.model.entity.Archives;
import com.youlai.boot.system.model.form.ArchivesForm;
import com.youlai.boot.system.model.query.ArchivesQuery;
import com.youlai.boot.system.model.vo.ArchivesVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.ArrayList;

/**
 * 博客文章服务类
 *
 * @author youlaitech
 * @since 2025-03-15 19:25
 */
public interface ArchivesService extends IService<Archives> {

    /**
     *博客文章分页列表
     *
     * @return
     */
    IPage<ArchivesVO> getArchivesPage(ArchivesQuery queryParams);

    /**
     * 获取博客文章表单数据
     *
     * @param id 博客文章ID
     * @return
     */
    ArchivesForm getArchivesFormData(Long id);

    /**
     * 新增博客文章
     *
     * @param formData 博客文章表单对象
     * @return
     */
    boolean saveArchives(ArchivesForm formData);

    /**
     * 修改博客文章
     *
     * @param id   博客文章ID
     * @param formData 博客文章表单对象
     * @return
     */
    boolean updateArchives(Long id, ArchivesForm formData);

    /**
     * 删除博客文章
     *
     * @param ids 博客文章ID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteArchivess(String ids);

    /**
     * 获取当前文章最近发布的三篇
     * @return
     */
    ArrayList<Archives> getArchivesTop3();

    /**
     * 根据ID过去文章
     * @param id
     * @return
     */
    Archives getArchivesById(Long id);

}
